<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>SC2API: include/sc2api/sc2_data.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="SC2-Logo.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">SC2API
   </div>
   <div id="projectbrief">An API for AI for StarCraft II</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_3d0dfd3160b31ffa512c49330ac8d646.html">sc2api</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">sc2_data.h</div>  </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;sc2_proto_interface.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="sc2__gametypes_8h.html">sc2_gametypes.h</a>&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="sc2__typeenums_8h.html">sc2_typeenums.h</a>&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacesc2.html">sc2</a> {</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="keyword">class </span>ObservationInterface;</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="keyword">typedef</span> MessageResponsePtr&lt;SC2APIProtocol::ResponseData&gt; ResponseDataPtr;</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="structsc2_1_1_available_ability.html">   17</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structsc2_1_1_available_ability.html">AvailableAbility</a> {</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    <a class="code" href="structsc2_1_1_available_ability.html">AvailableAbility</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    <a class="code" href="structsc2_1_1_available_ability.html">AvailableAbility</a>(<a class="code" href="classsc2_1_1_s_c2_type.html">AbilityID</a> <a class="code" href="structsc2_1_1_available_ability.html#ace0e29a4331fdf570146b3768203f294">ability_id</a>, <span class="keywordtype">bool</span> <a class="code" href="structsc2_1_1_available_ability.html#ac8ec9ad102f838de53565b75c4b67e99">requires_point</a>) :</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <a class="code" href="structsc2_1_1_available_ability.html#ace0e29a4331fdf570146b3768203f294">ability_id</a>(ability_id),</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        <a class="code" href="structsc2_1_1_available_ability.html#ac8ec9ad102f838de53565b75c4b67e99">requires_point</a>(requires_point) {};</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="structsc2_1_1_available_ability.html#ace0e29a4331fdf570146b3768203f294">   24</a></span>&#160;    <a class="code" href="classsc2_1_1_s_c2_type.html">AbilityID</a> ability_id = 0;</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="structsc2_1_1_available_ability.html#ac8ec9ad102f838de53565b75c4b67e99">   26</a></span>&#160;    <span class="keywordtype">bool</span> requires_point = <span class="keyword">false</span>;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;};</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="structsc2_1_1_ability_data.html">   30</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structsc2_1_1_ability_data.html">AbilityData</a> {</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="structsc2_1_1_ability_data.html#a15aaa20bd058eeb35728e2eeff6518f6">   32</a></span>&#160;    <span class="keyword">enum class</span> <a class="code" href="structsc2_1_1_ability_data.html#a15aaa20bd058eeb35728e2eeff6518f6">Target</a> {</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        None = 1,</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        Point = 2,</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        <a class="code" href="classsc2_1_1_unit.html">Unit</a> = 3,</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        PointOrUnit = 4,</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        PointOrNone = 5</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    };</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structsc2_1_1_ability_data.html#a1ca4424f072e90cddb81b5fe3b0595f2">   46</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structsc2_1_1_ability_data.html#a1ca4424f072e90cddb81b5fe3b0595f2">available</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="structsc2_1_1_ability_data.html#a5ccb4a8292936f8bc0cda4f1febc3476">   48</a></span>&#160;    <a class="code" href="classsc2_1_1_s_c2_type.html">AbilityID</a> <a class="code" href="structsc2_1_1_ability_data.html#a5ccb4a8292936f8bc0cda4f1febc3476">ability_id</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="structsc2_1_1_ability_data.html#a32213c23964c6803cca16bc5055861ff">   50</a></span>&#160;    std::string <a class="code" href="structsc2_1_1_ability_data.html#a32213c23964c6803cca16bc5055861ff">link_name</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structsc2_1_1_ability_data.html#a915bb3b60f7b3a664c13636292c64aae">   52</a></span>&#160;    uint32_t <a class="code" href="structsc2_1_1_ability_data.html#a915bb3b60f7b3a664c13636292c64aae">link_index</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structsc2_1_1_ability_data.html#a866b35972f5337e031215963d5fca922">   54</a></span>&#160;    std::string <a class="code" href="structsc2_1_1_ability_data.html#a866b35972f5337e031215963d5fca922">button_name</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="structsc2_1_1_ability_data.html#a9d7420bdffeed5e35f28abb9d397b0de">   56</a></span>&#160;    std::string <a class="code" href="structsc2_1_1_ability_data.html#a9d7420bdffeed5e35f28abb9d397b0de">friendly_name</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="structsc2_1_1_ability_data.html#a5e8389aab78797e9e8f4f88150ba6a76">   58</a></span>&#160;    std::string <a class="code" href="structsc2_1_1_ability_data.html#a5e8389aab78797e9e8f4f88150ba6a76">hotkey</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="structsc2_1_1_ability_data.html#a26ac48da5fd45e38e541250294438bb4">   60</a></span>&#160;    uint32_t <a class="code" href="structsc2_1_1_ability_data.html#a26ac48da5fd45e38e541250294438bb4">remaps_to_ability_id</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="structsc2_1_1_ability_data.html#a94d9523f96fc6497b46fa2d1355e03b5">   62</a></span>&#160;    std::vector&lt;uint32_t&gt; <a class="code" href="structsc2_1_1_ability_data.html#a94d9523f96fc6497b46fa2d1355e03b5">remaps_from_ability_id</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="structsc2_1_1_ability_data.html#a2351270150739e40d945e21fb801bedf">   64</a></span>&#160;    <a class="code" href="structsc2_1_1_ability_data.html#a15aaa20bd058eeb35728e2eeff6518f6">Target</a> <a class="code" href="structsc2_1_1_ability_data.html#a2351270150739e40d945e21fb801bedf">target</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="structsc2_1_1_ability_data.html#aa3cb5f43be280f584aa8246ee15f2f64">   66</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structsc2_1_1_ability_data.html#aa3cb5f43be280f584aa8246ee15f2f64">allow_minimap</a>;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="structsc2_1_1_ability_data.html#af80a0130a5c15ade16adeb9c415b89c0">   68</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structsc2_1_1_ability_data.html#af80a0130a5c15ade16adeb9c415b89c0">allow_autocast</a>;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="structsc2_1_1_ability_data.html#a252839497c027c2278ca126405d53da9">   70</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structsc2_1_1_ability_data.html#a252839497c027c2278ca126405d53da9">is_building</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="structsc2_1_1_ability_data.html#a600be2fc1d258608994d9658f6488c8c">   72</a></span>&#160;    <span class="keywordtype">float</span> <a class="code" href="structsc2_1_1_ability_data.html#a600be2fc1d258608994d9658f6488c8c">footprint_radius</a>;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structsc2_1_1_ability_data.html#a9fe8873ca4353862d1e2425526628ec1">   74</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structsc2_1_1_ability_data.html#a9fe8873ca4353862d1e2425526628ec1">is_instant_placement</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="structsc2_1_1_ability_data.html#ac70e65166f5a291b28da3c97c71833b4">   76</a></span>&#160;    <span class="keywordtype">float</span> <a class="code" href="structsc2_1_1_ability_data.html#ac70e65166f5a291b28da3c97c71833b4">cast_range</a>;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <a class="code" href="structsc2_1_1_ability_data.html">AbilityData</a>();</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    <span class="keywordtype">void</span> ReadFromProto(<span class="keyword">const</span> SC2APIProtocol::AbilityData&amp; ability_data);</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    std::string Log() <span class="keyword">const</span>;</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;};</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="keyword">typedef</span> std::vector&lt;AbilityData&gt; Abilities;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="structsc2_1_1_available_abilities.html">   91</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structsc2_1_1_available_abilities.html">AvailableAbilities</a> {</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="structsc2_1_1_available_abilities.html#af894555e7aa8ca9f4a7eb601a898287c">   93</a></span>&#160;    std::vector&lt;AvailableAbility&gt; <a class="code" href="structsc2_1_1_available_abilities.html#af894555e7aa8ca9f4a7eb601a898287c">abilities</a>;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="structsc2_1_1_available_abilities.html#aa89084e4b2b9948815f833f3ed40a4fb">   95</a></span>&#160;    Tag <a class="code" href="structsc2_1_1_available_abilities.html#aa89084e4b2b9948815f833f3ed40a4fb">unit_tag</a>;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="structsc2_1_1_available_abilities.html#a731332d717ebab756e47f2fd6d706cb0">   97</a></span>&#160;    <a class="code" href="classsc2_1_1_s_c2_type.html">UnitTypeID</a> <a class="code" href="structsc2_1_1_available_abilities.html#a731332d717ebab756e47f2fd6d706cb0">unit_type_id</a>;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="structsc2_1_1_available_abilities.html#a9ee95eab5fb81086c452a8790c13c368">  101</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structsc2_1_1_available_abilities.html#a9ee95eab5fb81086c452a8790c13c368">IsValid</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        <span class="keywordflow">return</span> unit_tag &amp;&amp; unit_type_id;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    }</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;};</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="keyword">enum class</span> Attribute {</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    Light = 1,</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    Armored = 2,</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    Biological = 3,</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    Mechanical = 4,</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    Robotic = 5,</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    Psionic = 6,</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    Massive = 7,</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    Structure = 8,</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    Hover = 9,</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    Heroic = 10,</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    Summoned = 11,</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    Invalid = 12</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;};</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="structsc2_1_1_damage_bonus.html">  123</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structsc2_1_1_damage_bonus.html">DamageBonus</a> {</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    Attribute attribute;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <span class="keywordtype">float</span> bonus;</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <a class="code" href="structsc2_1_1_damage_bonus.html">DamageBonus</a>();</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    <span class="keywordtype">void</span> ReadFromProto(<span class="keyword">const</span> SC2APIProtocol::DamageBonus&amp; damage_bonus);</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;};</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="structsc2_1_1_weapon.html">  133</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structsc2_1_1_weapon.html">Weapon</a> {</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="keyword">enum class</span> TargetType {</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        Ground = 1,</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        Air = 2,</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        Any = 3,</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        Invalid = 4</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    };</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    TargetType type;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keywordtype">float</span> damage_;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    std::vector&lt;DamageBonus&gt; damage_bonus;              <span class="comment">// Extra damage when attacking a unit of a certain attribute</span></div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    uint32_t attacks;                                   <span class="comment">// Number of hits per attack. (eg. Colossus has 2 beams)</span></div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    <span class="keywordtype">float</span> range;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    <span class="keywordtype">float</span> speed;                                        <span class="comment">// Time between attacks</span></div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <a class="code" href="structsc2_1_1_weapon.html">Weapon</a>();</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    <span class="keywordtype">void</span> ReadFromProto(<span class="keyword">const</span> SC2APIProtocol::Weapon&amp; weapon);</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;};</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="structsc2_1_1_unit_type_data.html">  153</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structsc2_1_1_unit_type_data.html">UnitTypeData</a> {</div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="structsc2_1_1_unit_type_data.html#a43563832b7287316ce6d1ff909dda831">  155</a></span>&#160;    <a class="code" href="classsc2_1_1_s_c2_type.html">UnitTypeID</a> <a class="code" href="structsc2_1_1_unit_type_data.html#a43563832b7287316ce6d1ff909dda831">unit_type_id</a>;</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="structsc2_1_1_unit_type_data.html#aefb802f470411fdba19e6b4ecb503427">  157</a></span>&#160;    std::string <a class="code" href="structsc2_1_1_unit_type_data.html#aefb802f470411fdba19e6b4ecb503427">name</a>;</div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="structsc2_1_1_unit_type_data.html#a9269cf7ef9d4907c467b5367e5a6f210">  159</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structsc2_1_1_unit_type_data.html#a9269cf7ef9d4907c467b5367e5a6f210">available</a>;</div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="structsc2_1_1_unit_type_data.html#a13ab317cd91246aa40c928f48b801b38">  161</a></span>&#160;    uint32_t <a class="code" href="structsc2_1_1_unit_type_data.html#a13ab317cd91246aa40c928f48b801b38">cargo_size</a>;</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="structsc2_1_1_unit_type_data.html#a50b767a68415cb1acbf246ee7f52ddcb">  163</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structsc2_1_1_unit_type_data.html#a50b767a68415cb1acbf246ee7f52ddcb">mineral_cost</a>;</div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="structsc2_1_1_unit_type_data.html#af596e50795f2b903b633cc7a72d43ae5">  165</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structsc2_1_1_unit_type_data.html#af596e50795f2b903b633cc7a72d43ae5">vespene_cost</a>;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="structsc2_1_1_unit_type_data.html#a1a07aba0d860ed9439104895ef2fc1f9">  168</a></span>&#160;    std::vector&lt;Attribute&gt; <a class="code" href="structsc2_1_1_unit_type_data.html#a1a07aba0d860ed9439104895ef2fc1f9">attributes</a>;</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="structsc2_1_1_unit_type_data.html#ac26ad858a8101e13d323c4111df9700b">  170</a></span>&#160;    <span class="keywordtype">float</span> <a class="code" href="structsc2_1_1_unit_type_data.html#ac26ad858a8101e13d323c4111df9700b">movement_speed</a>;</div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="structsc2_1_1_unit_type_data.html#afadeb2efc945bac24492cd4efd0dba28">  172</a></span>&#160;    <span class="keywordtype">float</span> <a class="code" href="structsc2_1_1_unit_type_data.html#afadeb2efc945bac24492cd4efd0dba28">armor</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="structsc2_1_1_unit_type_data.html#aad375db4df763eafc47589a1b20c8553">  174</a></span>&#160;    std::vector&lt;Weapon&gt; <a class="code" href="structsc2_1_1_unit_type_data.html#aad375db4df763eafc47589a1b20c8553">weapons</a>;</div><div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="structsc2_1_1_unit_type_data.html#a44f41fef59a8df77ae1e010b0ff1fc9c">  176</a></span>&#160;    <span class="keywordtype">float</span> <a class="code" href="structsc2_1_1_unit_type_data.html#a44f41fef59a8df77ae1e010b0ff1fc9c">food_required</a>;</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="structsc2_1_1_unit_type_data.html#a55084dca982bfe72285f73d21bbdaf0f">  178</a></span>&#160;    <span class="keywordtype">float</span> <a class="code" href="structsc2_1_1_unit_type_data.html#a55084dca982bfe72285f73d21bbdaf0f">food_provided</a>;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="structsc2_1_1_unit_type_data.html#a92a4833eee980a7ae26d85b216020944">  180</a></span>&#160;    <a class="code" href="classsc2_1_1_s_c2_type.html">AbilityID</a> <a class="code" href="structsc2_1_1_unit_type_data.html#a92a4833eee980a7ae26d85b216020944">ability_id</a>;</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="structsc2_1_1_unit_type_data.html#a579e162016f2fd46c8428a711be3ac3a">  182</a></span>&#160;    Race <a class="code" href="structsc2_1_1_unit_type_data.html#a579e162016f2fd46c8428a711be3ac3a">race</a>;</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="structsc2_1_1_unit_type_data.html#adb840df20a1c511098b99cd3afb41ec1">  184</a></span>&#160;    <span class="keywordtype">float</span> <a class="code" href="structsc2_1_1_unit_type_data.html#adb840df20a1c511098b99cd3afb41ec1">build_time</a>;</div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="structsc2_1_1_unit_type_data.html#a8ce8f358c201c051674f9e1e548abd62">  186</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structsc2_1_1_unit_type_data.html#a8ce8f358c201c051674f9e1e548abd62">has_minerals</a>;</div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="structsc2_1_1_unit_type_data.html#a00e3357be994388d2bf2c8e7755077ce">  188</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structsc2_1_1_unit_type_data.html#a00e3357be994388d2bf2c8e7755077ce">has_vespene</a>;</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="structsc2_1_1_unit_type_data.html#a2cd00ee675ab4280fa6e8bfeef27061a">  191</a></span>&#160;    std::vector&lt;UnitTypeID&gt; <a class="code" href="structsc2_1_1_unit_type_data.html#a2cd00ee675ab4280fa6e8bfeef27061a">tech_alias</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="structsc2_1_1_unit_type_data.html#a7eab1514d1c6eb9fd5450ac023e11279">  193</a></span>&#160;    <a class="code" href="classsc2_1_1_s_c2_type.html">UnitTypeID</a> <a class="code" href="structsc2_1_1_unit_type_data.html#a7eab1514d1c6eb9fd5450ac023e11279">unit_alias</a>;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="structsc2_1_1_unit_type_data.html#acd5714a07964d41b8af883d6b230e38e">  195</a></span>&#160;    <a class="code" href="classsc2_1_1_s_c2_type.html">UnitTypeID</a> <a class="code" href="structsc2_1_1_unit_type_data.html#acd5714a07964d41b8af883d6b230e38e">tech_requirement</a>;</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="structsc2_1_1_unit_type_data.html#a71172b93c9f9ec00c82b81adce596d00">  197</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structsc2_1_1_unit_type_data.html#a71172b93c9f9ec00c82b81adce596d00">require_attached</a>;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    <a class="code" href="structsc2_1_1_unit_type_data.html">UnitTypeData</a>();</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    <span class="keywordtype">void</span> ReadFromProto(<span class="keyword">const</span> SC2APIProtocol::UnitTypeData&amp; unit_data);</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    std::string Log() <span class="keyword">const</span>;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;};</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<span class="keyword">typedef</span> std::vector&lt;UnitTypeData&gt; UnitTypes;</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="structsc2_1_1_upgrade_data.html">  212</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structsc2_1_1_upgrade_data.html">UpgradeData</a> {</div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="structsc2_1_1_upgrade_data.html#a029e671b0ca85d874b3723cae5f9b9ef">  214</a></span>&#160;    uint32_t <a class="code" href="structsc2_1_1_upgrade_data.html#a029e671b0ca85d874b3723cae5f9b9ef">upgrade_id</a>;</div><div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="structsc2_1_1_upgrade_data.html#a8d8a126e4bee8c434bad896d3ac2c9be">  216</a></span>&#160;    std::string <a class="code" href="structsc2_1_1_upgrade_data.html#a8d8a126e4bee8c434bad896d3ac2c9be">name</a>;</div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="structsc2_1_1_upgrade_data.html#ae33d6c11380dd7c54f602285ec2c2a4d">  218</a></span>&#160;    uint32_t <a class="code" href="structsc2_1_1_upgrade_data.html#ae33d6c11380dd7c54f602285ec2c2a4d">mineral_cost</a>;</div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="structsc2_1_1_upgrade_data.html#a678af2926b21ec88dc59459ac1695c52">  220</a></span>&#160;    uint32_t <a class="code" href="structsc2_1_1_upgrade_data.html#a678af2926b21ec88dc59459ac1695c52">vespene_cost</a>;</div><div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="structsc2_1_1_upgrade_data.html#a460ded61dfae1ad19845ff12cc4b7f86">  222</a></span>&#160;    <a class="code" href="classsc2_1_1_s_c2_type.html">AbilityID</a> <a class="code" href="structsc2_1_1_upgrade_data.html#a460ded61dfae1ad19845ff12cc4b7f86">ability_id</a>;</div><div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="structsc2_1_1_upgrade_data.html#a5be26db3c987d0bc79345ea2e0387ac6">  224</a></span>&#160;    <span class="keywordtype">float</span> <a class="code" href="structsc2_1_1_upgrade_data.html#a5be26db3c987d0bc79345ea2e0387ac6">research_time</a>;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    <a class="code" href="structsc2_1_1_upgrade_data.html">UpgradeData</a>();</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    <span class="keywordtype">void</span> ReadFromProto(<span class="keyword">const</span> SC2APIProtocol::UpgradeData&amp; upgrade_data);</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    std::string Log() <span class="keyword">const</span>;</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;};</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="keyword">typedef</span> std::vector&lt;UpgradeData&gt; Upgrades;</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="structsc2_1_1_buff_data.html">  235</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structsc2_1_1_buff_data.html">BuffData</a> {</div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="structsc2_1_1_buff_data.html#ab5c92fdf01e7eb2d5629df664a99e0bc">  237</a></span>&#160;    uint32_t <a class="code" href="structsc2_1_1_buff_data.html#ab5c92fdf01e7eb2d5629df664a99e0bc">buff_id</a>;</div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="structsc2_1_1_buff_data.html#a8b97134b47f6cbe973fe1eba84bc3612">  239</a></span>&#160;    std::string <a class="code" href="structsc2_1_1_buff_data.html#a8b97134b47f6cbe973fe1eba84bc3612">name</a>;</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    <a class="code" href="structsc2_1_1_buff_data.html">BuffData</a>();</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    <span class="keywordtype">void</span> ReadFromProto(<span class="keyword">const</span> SC2APIProtocol::BuffData&amp; buff_data);</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    std::string Log() <span class="keyword">const</span>;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;};</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;<span class="keyword">typedef</span> std::vector&lt;BuffData&gt; Buffs;</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="structsc2_1_1_effect_data.html">  250</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structsc2_1_1_effect_data.html">EffectData</a> {</div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="structsc2_1_1_effect_data.html#af58e509580b26fbaf610de33e6ac6c06">  252</a></span>&#160;    uint32_t <a class="code" href="structsc2_1_1_effect_data.html#af58e509580b26fbaf610de33e6ac6c06">effect_id</a>;</div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="structsc2_1_1_effect_data.html#a23ec611a2d87a280ede5bb7a56b5be2f">  254</a></span>&#160;    std::string <a class="code" href="structsc2_1_1_effect_data.html#a23ec611a2d87a280ede5bb7a56b5be2f">name</a>;</div><div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="structsc2_1_1_effect_data.html#a2b82d974d199d9232c0f686019a451f4">  256</a></span>&#160;    std::string <a class="code" href="structsc2_1_1_effect_data.html#a2b82d974d199d9232c0f686019a451f4">friendly_name</a>;</div><div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="structsc2_1_1_effect_data.html#a9f91e374d06072d55b6ea6077a0b3884">  258</a></span>&#160;    <span class="keywordtype">float</span> <a class="code" href="structsc2_1_1_effect_data.html#a9f91e374d06072d55b6ea6077a0b3884">radius</a>;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;    <span class="keywordtype">void</span> ReadFromProto(<span class="keyword">const</span> SC2APIProtocol::EffectData&amp; effect_data);</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    std::string Log() <span class="keyword">const</span>;</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;};</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;<span class="keyword">typedef</span> std::vector&lt;EffectData&gt; Effects;</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="structsc2_1_1_power_source.html">  267</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structsc2_1_1_power_source.html">PowerSource</a> {</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    <a class="code" href="structsc2_1_1_power_source.html">PowerSource</a>(<span class="keyword">const</span> <a class="code" href="structsc2_1_1_point2_d.html">Point2D</a> in_position, <span class="keywordtype">float</span> in_radius, Tag in_tag) :</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        position(in_position),</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;        radius(in_radius),</div><div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="structsc2_1_1_power_source.html#acbd869abcc7f5964aca0faeb5905ee3d">  271</a></span>&#160;        tag(in_tag) {};</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    <a class="code" href="structsc2_1_1_point2_d.html">Point2D</a> <a class="code" href="structsc2_1_1_power_source.html#acbd869abcc7f5964aca0faeb5905ee3d">position</a>;</div><div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="structsc2_1_1_power_source.html#ab26f1606de2400d63693272a501d4d2d">  276</a></span>&#160;    <span class="keywordtype">float</span> <a class="code" href="structsc2_1_1_power_source.html#ab26f1606de2400d63693272a501d4d2d">radius</a>;</div><div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="structsc2_1_1_power_source.html#a98e4c9965754bf09d2c9504ed84ccbe9">  278</a></span>&#160;    Tag <a class="code" href="structsc2_1_1_power_source.html#a98e4c9965754bf09d2c9504ed84ccbe9">tag</a>;</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;};</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="structsc2_1_1_effect.html">  282</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structsc2_1_1_effect.html">Effect</a> {</div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="structsc2_1_1_effect.html#a9662d93abf7bffd42ae9913df609ded4">  284</a></span>&#160;    uint32_t <a class="code" href="structsc2_1_1_effect.html#a9662d93abf7bffd42ae9913df609ded4">effect_id</a>;</div><div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="structsc2_1_1_effect.html#ad7fdd1cf25fcc10aa577c9cfdaf74525">  287</a></span>&#160;    std::vector&lt;Point2D&gt; <a class="code" href="structsc2_1_1_effect.html#ad7fdd1cf25fcc10aa577c9cfdaf74525">positions</a>;</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    <span class="keywordtype">void</span> ReadFromProto(<span class="keyword">const</span> SC2APIProtocol::Effect&amp; effect);</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;};</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;<a class="code" href="classsc2_1_1_s_c2_type.html">AbilityID</a> GetGeneralizedAbilityID(uint32_t <a class="code" href="structsc2_1_1_available_ability.html#ace0e29a4331fdf570146b3768203f294">ability_id</a>, <span class="keyword">const</span> <a class="code" href="classsc2_1_1_observation_interface.html">ObservationInterface</a>&amp; observation);</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;}</div><div class="ttc" id="structsc2_1_1_upgrade_data_html_a5be26db3c987d0bc79345ea2e0387ac6"><div class="ttname"><a href="structsc2_1_1_upgrade_data.html#a5be26db3c987d0bc79345ea2e0387ac6">sc2::UpgradeData::research_time</a></div><div class="ttdeci">float research_time</div><div class="ttdoc">Time in GameLoops to research this upgrade. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:224</div></div>
<div class="ttc" id="structsc2_1_1_effect_data_html_af58e509580b26fbaf610de33e6ac6c06"><div class="ttname"><a href="structsc2_1_1_effect_data.html#af58e509580b26fbaf610de33e6ac6c06">sc2::EffectData::effect_id</a></div><div class="ttdeci">uint32_t effect_id</div><div class="ttdoc">Stable ID. This ID will not change between patches. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:252</div></div>
<div class="ttc" id="structsc2_1_1_ability_data_html_a1ca4424f072e90cddb81b5fe3b0595f2"><div class="ttname"><a href="structsc2_1_1_ability_data.html#a1ca4424f072e90cddb81b5fe3b0595f2">sc2::AbilityData::available</a></div><div class="ttdeci">bool available</div><div class="ttdoc">If true, the ability is available to the current mods/map. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:46</div></div>
<div class="ttc" id="structsc2_1_1_upgrade_data_html_a029e671b0ca85d874b3723cae5f9b9ef"><div class="ttname"><a href="structsc2_1_1_upgrade_data.html#a029e671b0ca85d874b3723cae5f9b9ef">sc2::UpgradeData::upgrade_id</a></div><div class="ttdeci">uint32_t upgrade_id</div><div class="ttdoc">Stable ID. This ID will not change between patches. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:214</div></div>
<div class="ttc" id="structsc2_1_1_damage_bonus_html"><div class="ttname"><a href="structsc2_1_1_damage_bonus.html">sc2::DamageBonus</a></div><div class="ttdoc">Damage bonus of unit. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:123</div></div>
<div class="ttc" id="structsc2_1_1_power_source_html_a98e4c9965754bf09d2c9504ed84ccbe9"><div class="ttname"><a href="structsc2_1_1_power_source.html#a98e4c9965754bf09d2c9504ed84ccbe9">sc2::PowerSource::tag</a></div><div class="ttdeci">Tag tag</div><div class="ttdoc">Unit tag of the power source. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:278</div></div>
<div class="ttc" id="structsc2_1_1_unit_type_data_html_a43563832b7287316ce6d1ff909dda831"><div class="ttname"><a href="structsc2_1_1_unit_type_data.html#a43563832b7287316ce6d1ff909dda831">sc2::UnitTypeData::unit_type_id</a></div><div class="ttdeci">UnitTypeID unit_type_id</div><div class="ttdoc">Stable ID. This ID will not change between patches. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:155</div></div>
<div class="ttc" id="structsc2_1_1_ability_data_html_a9d7420bdffeed5e35f28abb9d397b0de"><div class="ttname"><a href="structsc2_1_1_ability_data.html#a9d7420bdffeed5e35f28abb9d397b0de">sc2::AbilityData::friendly_name</a></div><div class="ttdeci">std::string friendly_name</div><div class="ttdoc">In case the button name is not descriptive. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:56</div></div>
<div class="ttc" id="structsc2_1_1_available_abilities_html_a9ee95eab5fb81086c452a8790c13c368"><div class="ttname"><a href="structsc2_1_1_available_abilities.html#a9ee95eab5fb81086c452a8790c13c368">sc2::AvailableAbilities::IsValid</a></div><div class="ttdeci">bool IsValid() const</div><div class="ttdef"><b>Definition:</b> sc2_data.h:101</div></div>
<div class="ttc" id="structsc2_1_1_effect_html"><div class="ttname"><a href="structsc2_1_1_effect.html">sc2::Effect</a></div><div class="ttdoc">The visuals of a persistent ability on the map. (eg. Psistorm) </div><div class="ttdef"><b>Definition:</b> sc2_data.h:282</div></div>
<div class="ttc" id="structsc2_1_1_upgrade_data_html_a460ded61dfae1ad19845ff12cc4b7f86"><div class="ttname"><a href="structsc2_1_1_upgrade_data.html#a460ded61dfae1ad19845ff12cc4b7f86">sc2::UpgradeData::ability_id</a></div><div class="ttdeci">AbilityID ability_id</div><div class="ttdoc">Ability that researches this upgrade. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:222</div></div>
<div class="ttc" id="structsc2_1_1_ability_data_html_a2351270150739e40d945e21fb801bedf"><div class="ttname"><a href="structsc2_1_1_ability_data.html#a2351270150739e40d945e21fb801bedf">sc2::AbilityData::target</a></div><div class="ttdeci">Target target</div><div class="ttdoc">Determines if a point, unit, both or none is required as a target. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:64</div></div>
<div class="ttc" id="classsc2_1_1_unit_html"><div class="ttname"><a href="classsc2_1_1_unit.html">sc2::Unit</a></div><div class="ttdoc">A unit. Could be a structure, a worker or a military unit. </div><div class="ttdef"><b>Definition:</b> sc2_unit.h:69</div></div>
<div class="ttc" id="structsc2_1_1_available_ability_html_ace0e29a4331fdf570146b3768203f294"><div class="ttname"><a href="structsc2_1_1_available_ability.html#ace0e29a4331fdf570146b3768203f294">sc2::AvailableAbility::ability_id</a></div><div class="ttdeci">AbilityID ability_id</div><div class="ttdoc">Ability that is available. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:24</div></div>
<div class="ttc" id="structsc2_1_1_ability_data_html_af80a0130a5c15ade16adeb9c415b89c0"><div class="ttname"><a href="structsc2_1_1_ability_data.html#af80a0130a5c15ade16adeb9c415b89c0">sc2::AbilityData::allow_autocast</a></div><div class="ttdeci">bool allow_autocast</div><div class="ttdoc">Autocast can be set. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:68</div></div>
<div class="ttc" id="structsc2_1_1_ability_data_html_a915bb3b60f7b3a664c13636292c64aae"><div class="ttname"><a href="structsc2_1_1_ability_data.html#a915bb3b60f7b3a664c13636292c64aae">sc2::AbilityData::link_index</a></div><div class="ttdeci">uint32_t link_index</div><div class="ttdoc">Catalog (game data xml) index of the ability. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:52</div></div>
<div class="ttc" id="structsc2_1_1_unit_type_data_html_a55084dca982bfe72285f73d21bbdaf0f"><div class="ttname"><a href="structsc2_1_1_unit_type_data.html#a55084dca982bfe72285f73d21bbdaf0f">sc2::UnitTypeData::food_provided</a></div><div class="ttdeci">float food_provided</div><div class="ttdoc">How much food the unit provides. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:178</div></div>
<div class="ttc" id="structsc2_1_1_point2_d_html"><div class="ttname"><a href="structsc2_1_1_point2_d.html">sc2::Point2D</a></div><div class="ttdef"><b>Definition:</b> sc2_common.h:49</div></div>
<div class="ttc" id="structsc2_1_1_power_source_html_ab26f1606de2400d63693272a501d4d2d"><div class="ttname"><a href="structsc2_1_1_power_source.html#ab26f1606de2400d63693272a501d4d2d">sc2::PowerSource::radius</a></div><div class="ttdeci">float radius</div><div class="ttdoc">Power source radius. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:276</div></div>
<div class="ttc" id="structsc2_1_1_unit_type_data_html_acd5714a07964d41b8af883d6b230e38e"><div class="ttname"><a href="structsc2_1_1_unit_type_data.html#acd5714a07964d41b8af883d6b230e38e">sc2::UnitTypeData::tech_requirement</a></div><div class="ttdeci">UnitTypeID tech_requirement</div><div class="ttdoc">Structure required to build this unit. (Or any with the same tech_alias) </div><div class="ttdef"><b>Definition:</b> sc2_data.h:195</div></div>
<div class="ttc" id="structsc2_1_1_available_abilities_html_a731332d717ebab756e47f2fd6d706cb0"><div class="ttname"><a href="structsc2_1_1_available_abilities.html#a731332d717ebab756e47f2fd6d706cb0">sc2::AvailableAbilities::unit_type_id</a></div><div class="ttdeci">UnitTypeID unit_type_id</div><div class="ttdoc">The unit type. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:97</div></div>
<div class="ttc" id="namespacesc2_html"><div class="ttname"><a href="namespacesc2.html">sc2</a></div><div class="ttdef"><b>Definition:</b> sc2_action.h:9</div></div>
<div class="ttc" id="structsc2_1_1_ability_data_html_a252839497c027c2278ca126405d53da9"><div class="ttname"><a href="structsc2_1_1_ability_data.html#a252839497c027c2278ca126405d53da9">sc2::AbilityData::is_building</a></div><div class="ttdeci">bool is_building</div><div class="ttdoc">Requires placement to construct a building. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:70</div></div>
<div class="ttc" id="structsc2_1_1_effect_html_a9662d93abf7bffd42ae9913df609ded4"><div class="ttname"><a href="structsc2_1_1_effect.html#a9662d93abf7bffd42ae9913df609ded4">sc2::Effect::effect_id</a></div><div class="ttdeci">uint32_t effect_id</div><div class="ttdoc">Type of the effect. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:284</div></div>
<div class="ttc" id="structsc2_1_1_ability_data_html_a15aaa20bd058eeb35728e2eeff6518f6"><div class="ttname"><a href="structsc2_1_1_ability_data.html#a15aaa20bd058eeb35728e2eeff6518f6">sc2::AbilityData::Target</a></div><div class="ttdeci">Target</div><div class="ttdoc">Type of target this ability applies to. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:32</div></div>
<div class="ttc" id="structsc2_1_1_effect_data_html_a2b82d974d199d9232c0f686019a451f4"><div class="ttname"><a href="structsc2_1_1_effect_data.html#a2b82d974d199d9232c0f686019a451f4">sc2::EffectData::friendly_name</a></div><div class="ttdeci">std::string friendly_name</div><div class="ttdoc">A more recognizable name of the effect. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:256</div></div>
<div class="ttc" id="structsc2_1_1_unit_type_data_html_a579e162016f2fd46c8428a711be3ac3a"><div class="ttname"><a href="structsc2_1_1_unit_type_data.html#a579e162016f2fd46c8428a711be3ac3a">sc2::UnitTypeData::race</a></div><div class="ttdeci">Race race</div><div class="ttdoc">The race the unit belongs to. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:182</div></div>
<div class="ttc" id="structsc2_1_1_ability_data_html_a9fe8873ca4353862d1e2425526628ec1"><div class="ttname"><a href="structsc2_1_1_ability_data.html#a9fe8873ca4353862d1e2425526628ec1">sc2::AbilityData::is_instant_placement</a></div><div class="ttdeci">bool is_instant_placement</div><div class="ttdoc">Placement next to an existing structure, e.g., an add-on like a Tech Lab. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:74</div></div>
<div class="ttc" id="structsc2_1_1_effect_data_html_a23ec611a2d87a280ede5bb7a56b5be2f"><div class="ttname"><a href="structsc2_1_1_effect_data.html#a23ec611a2d87a280ede5bb7a56b5be2f">sc2::EffectData::name</a></div><div class="ttdeci">std::string name</div><div class="ttdoc">Effect name, corresponds to the game&amp;#39;s catalog. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:254</div></div>
<div class="ttc" id="sc2__typeenums_8h_html"><div class="ttname"><a href="sc2__typeenums_8h.html">sc2_typeenums.h</a></div><div class="ttdoc">A list of enums provided for your convenience. </div></div>
<div class="ttc" id="structsc2_1_1_unit_type_data_html_a71172b93c9f9ec00c82b81adce596d00"><div class="ttname"><a href="structsc2_1_1_unit_type_data.html#a71172b93c9f9ec00c82b81adce596d00">sc2::UnitTypeData::require_attached</a></div><div class="ttdeci">bool require_attached</div><div class="ttdoc">Whether tech_requirement is an add-on. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:197</div></div>
<div class="ttc" id="structsc2_1_1_available_abilities_html_af894555e7aa8ca9f4a7eb601a898287c"><div class="ttname"><a href="structsc2_1_1_available_abilities.html#af894555e7aa8ca9f4a7eb601a898287c">sc2::AvailableAbilities::abilities</a></div><div class="ttdeci">std::vector&lt; AvailableAbility &gt; abilities</div><div class="ttdoc">The available abilities. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:93</div></div>
<div class="ttc" id="structsc2_1_1_ability_data_html_a600be2fc1d258608994d9658f6488c8c"><div class="ttname"><a href="structsc2_1_1_ability_data.html#a600be2fc1d258608994d9658f6488c8c">sc2::AbilityData::footprint_radius</a></div><div class="ttdeci">float footprint_radius</div><div class="ttdoc">If the ability is placing a building, give the radius of the footprint. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:72</div></div>
<div class="ttc" id="structsc2_1_1_unit_type_data_html_a00e3357be994388d2bf2c8e7755077ce"><div class="ttname"><a href="structsc2_1_1_unit_type_data.html#a00e3357be994388d2bf2c8e7755077ce">sc2::UnitTypeData::has_vespene</a></div><div class="ttdeci">bool has_vespene</div><div class="ttdoc">Whether the unit can have vespene (vespene geysers). </div><div class="ttdef"><b>Definition:</b> sc2_data.h:188</div></div>
<div class="ttc" id="structsc2_1_1_buff_data_html_ab5c92fdf01e7eb2d5629df664a99e0bc"><div class="ttname"><a href="structsc2_1_1_buff_data.html#ab5c92fdf01e7eb2d5629df664a99e0bc">sc2::BuffData::buff_id</a></div><div class="ttdeci">uint32_t buff_id</div><div class="ttdoc">Stable ID. This ID will not change between patches. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:237</div></div>
<div class="ttc" id="structsc2_1_1_unit_type_data_html_a2cd00ee675ab4280fa6e8bfeef27061a"><div class="ttname"><a href="structsc2_1_1_unit_type_data.html#a2cd00ee675ab4280fa6e8bfeef27061a">sc2::UnitTypeData::tech_alias</a></div><div class="ttdeci">std::vector&lt; UnitTypeID &gt; tech_alias</div><div class="ttdoc">Units this is equivalent to in terms of satisfying tech requirements. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:191</div></div>
<div class="ttc" id="structsc2_1_1_available_abilities_html"><div class="ttname"><a href="structsc2_1_1_available_abilities.html">sc2::AvailableAbilities</a></div><div class="ttdoc">All available abilities for a unit. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:91</div></div>
<div class="ttc" id="structsc2_1_1_ability_data_html_a866b35972f5337e031215963d5fca922"><div class="ttname"><a href="structsc2_1_1_ability_data.html#a866b35972f5337e031215963d5fca922">sc2::AbilityData::button_name</a></div><div class="ttdeci">std::string button_name</div><div class="ttdoc">Name of the button for the command card. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:54</div></div>
<div class="ttc" id="structsc2_1_1_unit_type_data_html_afadeb2efc945bac24492cd4efd0dba28"><div class="ttname"><a href="structsc2_1_1_unit_type_data.html#afadeb2efc945bac24492cd4efd0dba28">sc2::UnitTypeData::armor</a></div><div class="ttdeci">float armor</div><div class="ttdoc">Armor of unit type. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:172</div></div>
<div class="ttc" id="structsc2_1_1_ability_data_html_a94d9523f96fc6497b46fa2d1355e03b5"><div class="ttname"><a href="structsc2_1_1_ability_data.html#a94d9523f96fc6497b46fa2d1355e03b5">sc2::AbilityData::remaps_from_ability_id</a></div><div class="ttdeci">std::vector&lt; uint32_t &gt; remaps_from_ability_id</div><div class="ttdoc">Other abilities remapped to this generic ability. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:62</div></div>
<div class="ttc" id="structsc2_1_1_ability_data_html_a5ccb4a8292936f8bc0cda4f1febc3476"><div class="ttname"><a href="structsc2_1_1_ability_data.html#a5ccb4a8292936f8bc0cda4f1febc3476">sc2::AbilityData::ability_id</a></div><div class="ttdeci">AbilityID ability_id</div><div class="ttdoc">Stable ID. For a given ability, this value will be immutable throughout different patches...</div><div class="ttdef"><b>Definition:</b> sc2_data.h:48</div></div>
<div class="ttc" id="structsc2_1_1_buff_data_html"><div class="ttname"><a href="structsc2_1_1_buff_data.html">sc2::BuffData</a></div><div class="ttdoc">Buff data. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:235</div></div>
<div class="ttc" id="structsc2_1_1_ability_data_html_a32213c23964c6803cca16bc5055861ff"><div class="ttname"><a href="structsc2_1_1_ability_data.html#a32213c23964c6803cca16bc5055861ff">sc2::AbilityData::link_name</a></div><div class="ttdeci">std::string link_name</div><div class="ttdoc">Catalog (game data xml) name of the ability. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:50</div></div>
<div class="ttc" id="structsc2_1_1_unit_type_data_html_ac26ad858a8101e13d323c4111df9700b"><div class="ttname"><a href="structsc2_1_1_unit_type_data.html#ac26ad858a8101e13d323c4111df9700b">sc2::UnitTypeData::movement_speed</a></div><div class="ttdeci">float movement_speed</div><div class="ttdoc">Movement speed of unit type. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:170</div></div>
<div class="ttc" id="structsc2_1_1_unit_type_data_html_a8ce8f358c201c051674f9e1e548abd62"><div class="ttname"><a href="structsc2_1_1_unit_type_data.html#a8ce8f358c201c051674f9e1e548abd62">sc2::UnitTypeData::has_minerals</a></div><div class="ttdeci">bool has_minerals</div><div class="ttdoc">Whether the unit can have minerals (mineral patches). </div><div class="ttdef"><b>Definition:</b> sc2_data.h:186</div></div>
<div class="ttc" id="structsc2_1_1_unit_type_data_html_aad375db4df763eafc47589a1b20c8553"><div class="ttname"><a href="structsc2_1_1_unit_type_data.html#aad375db4df763eafc47589a1b20c8553">sc2::UnitTypeData::weapons</a></div><div class="ttdeci">std::vector&lt; Weapon &gt; weapons</div><div class="ttdoc">Weapons on this unit type. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:174</div></div>
<div class="ttc" id="structsc2_1_1_effect_html_ad7fdd1cf25fcc10aa577c9cfdaf74525"><div class="ttname"><a href="structsc2_1_1_effect.html#ad7fdd1cf25fcc10aa577c9cfdaf74525">sc2::Effect::positions</a></div><div class="ttdeci">std::vector&lt; Point2D &gt; positions</div><div class="ttdef"><b>Definition:</b> sc2_data.h:287</div></div>
<div class="ttc" id="structsc2_1_1_unit_type_data_html_af596e50795f2b903b633cc7a72d43ae5"><div class="ttname"><a href="structsc2_1_1_unit_type_data.html#af596e50795f2b903b633cc7a72d43ae5">sc2::UnitTypeData::vespene_cost</a></div><div class="ttdeci">int vespene_cost</div><div class="ttdoc">Cost in vespene to build this unit type. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:165</div></div>
<div class="ttc" id="structsc2_1_1_unit_type_data_html_a1a07aba0d860ed9439104895ef2fc1f9"><div class="ttname"><a href="structsc2_1_1_unit_type_data.html#a1a07aba0d860ed9439104895ef2fc1f9">sc2::UnitTypeData::attributes</a></div><div class="ttdeci">std::vector&lt; Attribute &gt; attributes</div><div class="ttdoc">Unit attributes, may change based on upgrades. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:168</div></div>
<div class="ttc" id="structsc2_1_1_power_source_html"><div class="ttname"><a href="structsc2_1_1_power_source.html">sc2::PowerSource</a></div><div class="ttdoc">Power source information for Protoss. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:267</div></div>
<div class="ttc" id="structsc2_1_1_ability_data_html_a26ac48da5fd45e38e541250294438bb4"><div class="ttname"><a href="structsc2_1_1_ability_data.html#a26ac48da5fd45e38e541250294438bb4">sc2::AbilityData::remaps_to_ability_id</a></div><div class="ttdeci">uint32_t remaps_to_ability_id</div><div class="ttdoc">This ability id may be represented by the given more generic id. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:60</div></div>
<div class="ttc" id="structsc2_1_1_unit_type_data_html_a7eab1514d1c6eb9fd5450ac023e11279"><div class="ttname"><a href="structsc2_1_1_unit_type_data.html#a7eab1514d1c6eb9fd5450ac023e11279">sc2::UnitTypeData::unit_alias</a></div><div class="ttdeci">UnitTypeID unit_alias</div><div class="ttdoc">Units that are morphed variants of the same unit. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:193</div></div>
<div class="ttc" id="structsc2_1_1_unit_type_data_html_a92a4833eee980a7ae26d85b216020944"><div class="ttname"><a href="structsc2_1_1_unit_type_data.html#a92a4833eee980a7ae26d85b216020944">sc2::UnitTypeData::ability_id</a></div><div class="ttdeci">AbilityID ability_id</div><div class="ttdoc">Which ability id creates the unit. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:180</div></div>
<div class="ttc" id="classsc2_1_1_observation_interface_html"><div class="ttname"><a href="classsc2_1_1_observation_interface.html">sc2::ObservationInterface</a></div><div class="ttdoc">The ObservationInterface reflects the current state of the game. Guaranteed to be valid when OnGameSt...</div><div class="ttdef"><b>Definition:</b> sc2_interfaces.h:47</div></div>
<div class="ttc" id="structsc2_1_1_effect_data_html"><div class="ttname"><a href="structsc2_1_1_effect_data.html">sc2::EffectData</a></div><div class="ttdoc">Effect data. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:250</div></div>
<div class="ttc" id="sc2__gametypes_8h_html"><div class="ttname"><a href="sc2__gametypes_8h.html">sc2_gametypes.h</a></div><div class="ttdoc">Types used in setting up a game. </div></div>
<div class="ttc" id="structsc2_1_1_unit_type_data_html_aefb802f470411fdba19e6b4ecb503427"><div class="ttname"><a href="structsc2_1_1_unit_type_data.html#aefb802f470411fdba19e6b4ecb503427">sc2::UnitTypeData::name</a></div><div class="ttdeci">std::string name</div><div class="ttdoc">Unit type name, corresponds to the game&amp;#39;s catalog. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:157</div></div>
<div class="ttc" id="classsc2_1_1_s_c2_type_html"><div class="ttname"><a href="classsc2_1_1_s_c2_type.html">sc2::SC2Type&lt; ABILITY_ID &gt;</a></div></div>
<div class="ttc" id="structsc2_1_1_unit_type_data_html_a44f41fef59a8df77ae1e010b0ff1fc9c"><div class="ttname"><a href="structsc2_1_1_unit_type_data.html#a44f41fef59a8df77ae1e010b0ff1fc9c">sc2::UnitTypeData::food_required</a></div><div class="ttdeci">float food_required</div><div class="ttdoc">How much food the unit requires. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:176</div></div>
<div class="ttc" id="structsc2_1_1_buff_data_html_a8b97134b47f6cbe973fe1eba84bc3612"><div class="ttname"><a href="structsc2_1_1_buff_data.html#a8b97134b47f6cbe973fe1eba84bc3612">sc2::BuffData::name</a></div><div class="ttdeci">std::string name</div><div class="ttdoc">Buff name, corresponds to the game&amp;#39;s catalog. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:239</div></div>
<div class="ttc" id="structsc2_1_1_ability_data_html_aa3cb5f43be280f584aa8246ee15f2f64"><div class="ttname"><a href="structsc2_1_1_ability_data.html#aa3cb5f43be280f584aa8246ee15f2f64">sc2::AbilityData::allow_minimap</a></div><div class="ttdeci">bool allow_minimap</div><div class="ttdoc">Can be cast in the minimap. (Not implemented) </div><div class="ttdef"><b>Definition:</b> sc2_data.h:66</div></div>
<div class="ttc" id="structsc2_1_1_unit_type_data_html_adb840df20a1c511098b99cd3afb41ec1"><div class="ttname"><a href="structsc2_1_1_unit_type_data.html#adb840df20a1c511098b99cd3afb41ec1">sc2::UnitTypeData::build_time</a></div><div class="ttdeci">float build_time</div><div class="ttdoc">How long the unit takes to build. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:184</div></div>
<div class="ttc" id="structsc2_1_1_upgrade_data_html"><div class="ttname"><a href="structsc2_1_1_upgrade_data.html">sc2::UpgradeData</a></div><div class="ttdoc">Upgrade data. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:212</div></div>
<div class="ttc" id="structsc2_1_1_unit_type_data_html_a13ab317cd91246aa40c928f48b801b38"><div class="ttname"><a href="structsc2_1_1_unit_type_data.html#a13ab317cd91246aa40c928f48b801b38">sc2::UnitTypeData::cargo_size</a></div><div class="ttdeci">uint32_t cargo_size</div><div class="ttdoc">Number of cargo slots they occupy in a transport. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:161</div></div>
<div class="ttc" id="structsc2_1_1_effect_data_html_a9f91e374d06072d55b6ea6077a0b3884"><div class="ttname"><a href="structsc2_1_1_effect_data.html#a9f91e374d06072d55b6ea6077a0b3884">sc2::EffectData::radius</a></div><div class="ttdeci">float radius</div><div class="ttdoc">Size of the circle the effect impacts. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:258</div></div>
<div class="ttc" id="structsc2_1_1_available_abilities_html_aa89084e4b2b9948815f833f3ed40a4fb"><div class="ttname"><a href="structsc2_1_1_available_abilities.html#aa89084e4b2b9948815f833f3ed40a4fb">sc2::AvailableAbilities::unit_tag</a></div><div class="ttdeci">Tag unit_tag</div><div class="ttdoc">The unit. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:95</div></div>
<div class="ttc" id="structsc2_1_1_ability_data_html_a5e8389aab78797e9e8f4f88150ba6a76"><div class="ttname"><a href="structsc2_1_1_ability_data.html#a5e8389aab78797e9e8f4f88150ba6a76">sc2::AbilityData::hotkey</a></div><div class="ttdeci">std::string hotkey</div><div class="ttdoc">UI hotkey. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:58</div></div>
<div class="ttc" id="structsc2_1_1_available_ability_html"><div class="ttname"><a href="structsc2_1_1_available_ability.html">sc2::AvailableAbility</a></div><div class="ttdoc">Indicates if an ability is available, and if that ability requires a point. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:17</div></div>
<div class="ttc" id="structsc2_1_1_weapon_html"><div class="ttname"><a href="structsc2_1_1_weapon.html">sc2::Weapon</a></div><div class="ttdoc">Unit weapon. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:133</div></div>
<div class="ttc" id="structsc2_1_1_unit_type_data_html_a50b767a68415cb1acbf246ee7f52ddcb"><div class="ttname"><a href="structsc2_1_1_unit_type_data.html#a50b767a68415cb1acbf246ee7f52ddcb">sc2::UnitTypeData::mineral_cost</a></div><div class="ttdeci">int mineral_cost</div><div class="ttdoc">Cost in minerals to build this unit type. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:163</div></div>
<div class="ttc" id="structsc2_1_1_upgrade_data_html_a8d8a126e4bee8c434bad896d3ac2c9be"><div class="ttname"><a href="structsc2_1_1_upgrade_data.html#a8d8a126e4bee8c434bad896d3ac2c9be">sc2::UpgradeData::name</a></div><div class="ttdeci">std::string name</div><div class="ttdoc">Upgrade name, corresponds to the game&amp;#39;s catalog. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:216</div></div>
<div class="ttc" id="structsc2_1_1_ability_data_html_ac70e65166f5a291b28da3c97c71833b4"><div class="ttname"><a href="structsc2_1_1_ability_data.html#ac70e65166f5a291b28da3c97c71833b4">sc2::AbilityData::cast_range</a></div><div class="ttdeci">float cast_range</div><div class="ttdoc">Range unit can cast ability without needing to approach target. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:76</div></div>
<div class="ttc" id="structsc2_1_1_upgrade_data_html_ae33d6c11380dd7c54f602285ec2c2a4d"><div class="ttname"><a href="structsc2_1_1_upgrade_data.html#ae33d6c11380dd7c54f602285ec2c2a4d">sc2::UpgradeData::mineral_cost</a></div><div class="ttdeci">uint32_t mineral_cost</div><div class="ttdoc">Mineral cost of researching the upgrade. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:218</div></div>
<div class="ttc" id="structsc2_1_1_available_ability_html_ac8ec9ad102f838de53565b75c4b67e99"><div class="ttname"><a href="structsc2_1_1_available_ability.html#ac8ec9ad102f838de53565b75c4b67e99">sc2::AvailableAbility::requires_point</a></div><div class="ttdeci">bool requires_point</div><div class="ttdoc">Indicates if the ability requires a point to invoke. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:26</div></div>
<div class="ttc" id="structsc2_1_1_power_source_html_acbd869abcc7f5964aca0faeb5905ee3d"><div class="ttname"><a href="structsc2_1_1_power_source.html#acbd869abcc7f5964aca0faeb5905ee3d">sc2::PowerSource::position</a></div><div class="ttdeci">Point2D position</div><div class="ttdoc">Power source position. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:271</div></div>
<div class="ttc" id="structsc2_1_1_upgrade_data_html_a678af2926b21ec88dc59459ac1695c52"><div class="ttname"><a href="structsc2_1_1_upgrade_data.html#a678af2926b21ec88dc59459ac1695c52">sc2::UpgradeData::vespene_cost</a></div><div class="ttdeci">uint32_t vespene_cost</div><div class="ttdoc">Vespene cost of researching the upgrade. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:220</div></div>
<div class="ttc" id="structsc2_1_1_unit_type_data_html"><div class="ttname"><a href="structsc2_1_1_unit_type_data.html">sc2::UnitTypeData</a></div><div class="ttdoc">Data about a unit type. This data is derived from the catalog (xml) data of the game and upgrades...</div><div class="ttdef"><b>Definition:</b> sc2_data.h:153</div></div>
<div class="ttc" id="structsc2_1_1_unit_type_data_html_a9269cf7ef9d4907c467b5367e5a6f210"><div class="ttname"><a href="structsc2_1_1_unit_type_data.html#a9269cf7ef9d4907c467b5367e5a6f210">sc2::UnitTypeData::available</a></div><div class="ttdeci">bool available</div><div class="ttdoc">If true, the unit is available to the current mods/map. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:159</div></div>
<div class="ttc" id="structsc2_1_1_ability_data_html"><div class="ttname"><a href="structsc2_1_1_ability_data.html">sc2::AbilityData</a></div><div class="ttdoc">Data about an ability. </div><div class="ttdef"><b>Definition:</b> sc2_data.h:30</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>
